# 构建镜像命令
# docker build -t tmall-pc-frontend:v1.0.0-dev --build-arg RUNENV=dev .
# docker build -t tmall-pc-frontend:v1.0.0-test --build-arg RUNENV=test .
# docker build -t tmall-pc-frontend:v1.0.0 --build-arg RUNENV=prod .
FROM node:16-alpine as build-stage
# FROM node:lts-alpine as build-stage

# 设置容器内工作目录
WORKDIR /app

# 复制项目依赖描述文件（优先复制以利用 Docker 缓存层）
COPY package*.json ./

# 安装项目依赖（使用淘宝 NPM 镜像加速）
RUN npm install --registry=https://registry.npmmirror.com

# 复制所有项目文件到容器
COPY . .


# 在构建过程中将`ARG`的值保存到环境变量中：
# 通过`ENV`指令将`ARG`的值设置为环境变量，这样在容器运行时该环境变量仍然可用。
# 然后，在`ENTRYPOINT`的脚本中引用该环境变量。
# 不传默认：dev
ARG RUNENV=dev
RUN echo "Building for Run Environment: ${RUNENV}"
ENV RUNENV=$RUNENV

# 构建静态文件（Vue CLI 项目）
RUN npm run build:$RUNENV

FROM nginx:1.20.0 AS final

# 创建项目目录
RUN mkdir -p /home/www/trident-mall-pc

# 指定工作路径
WORKDIR /home/www/trident-mall-pc

# 将dist目录内容复制到工作路径下
COPY --from=build-stage /app/dist /home/www/trident-mall-pc

# 复制nginx配置文件
COPY nginx.conf /etc/nginx/nginx.conf

# 创建nginx日志目录
RUN mkdir -p /data/wwwlogs/nginx

expose 80

# 启动 Nginx 服务（前台运行）
# CMD ["nginx", "-g", "daemon off;"]